feat: Week 9 — 0.1.0 release readiness#14
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Week 9 — 0.1.0 release readiness
This PR implements the full Week 9 milestone, making the repository ready for a
0.1.0release focused on reliable isolated terminal automation, TUI dogfooding, and reviewer-verifiable proof artifacts.What changed
Lane 1 — Renderer isolation fix (
src/renderer/browserPath.ts)PLAYWRIGHT_BROWSERS_PATHfrom the original hostHOMEbefore any Playwright callsLane 2 —
runcommand (src/cli/commands/run.ts,src/host/hostMain.ts, protocol)run <session-id> [command]command for robust in-session command executionprintfcompletion detection viawaitForRender--timeout,--no-wait,--file,--jsonflagsRunParamsSchema,RunResultSchema,input_runevent type, replay supportLane 3 — Doctor isolation diagnostics (
src/cli/commands/doctor.ts)home_isolationcheck: reports whether the environment is isolatedbrowser_cache_accessiblecheck: verifies Playwright browser cache before attempting launchLane 4 — Week 9 proof bundle (
dogfood/20260326-week9-release-readiness/)Lane 5 — Release docs
RELEASE.md: explicit 0.1.0 contract (delivers, non-goals, known limitations)README.md: new TUI Workflow, Isolation, and Run Command sectionsReview hardening (found and fixed during deep review + dogfood)
runmarker detected in terminal input echo — fixed with split-markerprintf+ explicit Enter after pasteRunResulttype dedup, marker quoting, timeout validation, schemasuperRefine, session-exit detection during waitbrowserPath.ts, doctor message disambiguation, macOS/Windows test coverage, doc referencesBehavior changes
agent-terminal run <session-id> [command]doctor --jsonnow includeshome_isolationandbrowser_cache_accessiblechecksValidation
Hands-on dogfood verified:
sleep 3properly waits ~3.2s, multiline commands,--no-wait, timeout validation, error envelopes, screenshots, exports.Known limitation (documented, acceptable for 0.1.0)
Commands with unmatched single quotes cause the
printfmarker line to be consumed by bash's quote continuation, leading to timeout instead of completion. This is a pre-existing limitation of the paste-injection design (properly quoted commands work fine). Documented as post-0.1.0 hardening target.Proof artifacts
dogfood/20260326-week9-release-readiness/— full release-readiness bundledogfood/run-command/— dedicated run command proof.webmrecordings included in both bundles📋 Implementation Plan
Week 9 / pre-0.1.0 release-readiness implementation plan
Objective
Execute the Week 9 release-readiness milestone for
agent-terminalso the repository is ready to ship a credible0.1.0focused on reliable terminal automation, TUI dogfooding, and reviewer-verifiable proof artifacts.This plan turns the Week 9 design doc into an execution plan for a small team of agents working in parallel with minimal merge-conflict risk.
Source context and verified inputs
This plan is based on the currently checked-in design/docs and repo structure, especially:
design/20260319_agent-terminal-v1/17-week-9-plan.mddesign/20260319_agent-terminal-v1.mdsrc/cli/main.tssrc/cli/commands/doctor.tssrc/cli/commands/*.tssrc/host/hostMain.tssrc/host/renderer.tssrc/renderer/ghosttyWeb/backend.tssrc/protocol/schemas.tssrc/protocol/messages.tsdogfood/test/unit/,test/integration/, andtest/e2e/Repo investigation also identified the cleanest execution lanes as:
doctor/ diagnostics work,Release thesis
The
0.1.0bar is not “solve all future TUI automation.”The
0.1.0bar is:doctorand docs explain the environment clearly,Anything beyond that — native backends, mouse input, remote sessions, MCP wrapping, full semantic TUI automation — remains post-
0.1.0scope.Team shape and lane split
Use 5 agent lanes plus one integration/release lane. If the team is smaller, merge lanes in this order:
Lane 1 — Renderer isolation and bootstrap reliability
Mission: Make screenshot / snapshot / WebM flows work in isolated session environments without manual environment surgery.
Primary files/subsystems:
src/renderer/ghosttyWeb/backend.tssrc/host/renderer.tssrc/host/hostMain.tssrc/renderer/capabilities.tssrc/renderer/profiles.tstest/unit/renderer/,test/integration/, andtest/e2e/Expected outputs:
HOME,Lane 2 — High-level in-session command primitive
Mission: Add a first-class command for robust shell/script execution inside a running session.
Primary files/subsystems:
src/cli/main.tssrc/cli/commands/run.tsorexec.tssrc/host/hostMain.tssrc/protocol/schemas.tssrc/protocol/messages.tstest/unit/,test/integration/, optionallytest/e2e/Expected outputs:
wait/snapshot/typebehavior,type/paste/send-keys.Lane 3 — TUI diagnostics and
doctorimprovementsMission: Make
doctorand related diagnostics explain renderer/TUI readiness clearly, especially under isolation.Primary files/subsystems:
src/cli/commands/doctor.tssrc/protocol/schemas.tssrc/protocol/messages.tssrc/storage/if neededdoctorand diagnosticsExpected outputs:
doctor --jsonfields for renderer/bootstrap/TUI readiness,doctorresults.Lane 4 — Release-grade Neovim/LazyVim/Claude proof bundle
Mission: Capture the Week 9 proof bar as a reviewer-facing dogfood bundle.
Primary files/subsystems:
dogfood/Expected outputs:
.webmrecording,Lane 5 — Release docs and
0.1.0contract statementMission: Describe the
0.1.0bar clearly and keep the docs synchronized with the Week 9 implementation.Primary files/subsystems:
design/20260319_agent-terminal-v1.mddesign/20260319_agent-terminal-v1/17-week-9-plan.mdREADME.mdExpected outputs:
0.1.0contract/limitations text,Integration lane — Merge, validate, and release readiness
Mission: Coordinate sequencing, merge work, run full validation, and determine whether the repo satisfies the
0.1.0bar.Primary responsibilities:
npm run verify/mise run ciplus targeted tests,Execution order and dependency graph
Use this sequence:
Phase 0 — Alignment and design decisions
Complete before substantial coding begins.
Required decisions
Command primitive architecture
run,exec, or another name.Renderer/bootstrap environment contract
HOME.PLAYWRIGHT_BROWSERS_PATHmanually.Doctor/TUI readiness surface
doctor --jsonversus docs-only guidance.Release-grade dogfood scope
0.1.0, dogfood-only proof is acceptable if it is reproducible and reviewable.Phase 0 deliverable
A short recorded decision log in the implementation PR or follow-up docs, covering the four decisions above.
Phase 1 — Foundation implementation in parallel
Start these lanes in parallel after Phase 0 decisions are locked.
doctorimprovementsLane 4 should prepare the dogfood harness and scripts during this phase, but should not finalize proof artifacts until Lanes 1–3 have landed enough stability.
Phase 2 — Proof and integration
After Lanes 1–3 are code-complete and green on lane-local validation:
Phase 3 — Release readiness decision
Only after code, docs, and proof are all present:
0.1.0scope,0.1.0.Detailed workstream plan
Workstream A — isolated renderer/bootstrap reliability
Goals
Concrete tasks
HOME/ XDG dirs differ from the host environment.screenshotandrecord export --format webm.AGENT_TERMINAL_HOME,HOME,Acceptance criteria
Risks to manage
doctoror docs.Workstream B — first-class in-session command primitive
Goals
Concrete tasks
0.1.0:src/cli/main.ts.src/cli/commands/.src/host/hostMain.ts.type,paste, andsend-keys.Acceptance criteria
Risks to manage
0.1.0.Workstream C — TUI-focused diagnostics and
doctorGoals
Concrete tasks
doctor --jsoncoverage and identify which Week 9 pain points are not surfaced yet.doctor, a helper, or the proof bundle only.doctorfields.Acceptance criteria
doctor --jsonmakes it obvious whether the environment is expected to support renderer-backed TUI workflows,0.1.0limitations.Risks to manage
doctornoisy without making it more actionable,doctor,version,inspect, and the design docs.Workstream D — release-grade Neovim/LazyVim/Claude proof bundle
Goals
0.1.0proof bar,Concrete tasks
.webmrecording of the workflow.Acceptance criteria
0.1.0TUI success case.Risks to manage
Workstream E — release docs and
0.1.0contract statementGoals
0.1.0promise explicit,Concrete tasks
0.1.0closeout milestone.type/paste/send-keys,0.1.0summary there too.Acceptance criteria
0.1.0bar,Risks to manage
0.1.0blockers from post-release enhancements.Cross-lane merge strategy
Low-conflict ownership map
src/renderer/*and renderer-focused tests.src/cli/main.tsregistration.doctor.tsand doctor-specific protocol/test changes.dogfood/artifacts and proof notes.src/protocol/schemas.tssrc/protocol/messages.tssrc/cli/main.tsMerge order
Validation and quality gates
Every lane must pass its own focused validation before merge.
Lane-local validation template
npm run format:check,npm run lint,npm run typecheck,npm run buildif the touched area warrants it,Full-integration validation
Before declaring Week 9 complete:
If
miseis unavailable:Also run the targeted proof commands for Week 9, including:
If renderer-heavy proof is involved, also run the most relevant screenshot/WebM and renderer integration tests explicitly, even if they are already indirectly covered.
Dogfooding requirements
Week 9 must preserve the repo’s proof-first standard.
Required proof for implementation-changing work
For any change touching renderer/bootstrap behavior, session command execution, or TUI diagnostics, capture:
.webmrecordings where the scenario is interaction-heavy.Required Week 9 milestone proof
At a minimum, the final Week 9 deliverables should include proof for:
Screenshot/video bar
For the release-grade Neovim scenario, capture all of the following:
.webmrecording spanning the meaningful interaction flow.Blockers vs non-blockers
Blockers for
0.1.0Treat these as must-fix unless the team explicitly reclassifies them in docs:
doctorstill leaves the main renderer/TUI prerequisites ambiguous,Non-blockers for
0.1.0Do not expand scope into these unless they naturally fall out of the work:
Deliverables checklist for the integration lane
By the end of execution, the integration lane should be able to point to:
0.1.0scope.Suggested kickoff brief for the team
Use this as the implementation kickoff summary:
Final go/no-go checklist
The repo is ready for
0.1.0only if the answer to all of these is “yes”:doctorexplain renderer/TUI readiness clearly enough for a first-time user?0.1.0work rather than hidden blockers?Generated with
mux• Model:anthropic:claude-opus-4-6• Thinking:xhigh